package cn.tedu.oop2;

public class TestExtends {

    public static void main(String[] args) {
        Fruit f=new Fruit();
        Apple a=new Apple();
        HFS h=new HFS();
        /*继承相当于子类将父类的资源复制了一份
        * 继承还具有传递性,爷爷的功能会传递给爸爸,爸爸的功能会传给孙子*/
        f.eat();
        a.eat();
        h.eat();
    }
}

/*我们通过extends关键字建立子类与父类的继承关系,格式:子类 extends 父类*/
/*java只支持单继承,一个子类只能有一个父类但是一个父类可以有多个子类*/
class Fruit{
    public void eat(){
        System.out.println("现在还没想好吃啥水果~");
    }
}

class Apple extends Fruit{
    /*6,继承是一种 is a 的关系,比如苹果是一种水果,红富士是一种苹果
    * 继承要求子类必须是父类的一种下属类型,依赖性非常强,强耦合*/
        int a=10;
        private int b=100;
}

class  HFS extends Apple{
    /*4,子类可以拥有自己独立的方法,实现功能的拓展,青出于蓝而胜于蓝*/
        public void sweet(){
            System.out.println();//使用从父类继承过来的属性
            System.out.println("红富士特别甜~");
            /*5,子类继承了父类以后,可以使用父类的所有非私有资源
            * 注意:这个非私有资源由于被private修饰,所以没有访问的权限*/
           // System.out.println(b);
        }
}